namespace ColladaDotNet
{
	/// <remarks/>
    
	[System.SerializableAttribute()]
    
    
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.collada.org/2005/11/COLLADASchema")]
	public partial class glsl_setparam {
        
		private fx_annotate_common[] annotateField;
        
		private object itemField;
        
		private ItemChoiceType1 itemElementNameField;
        
		private string refField;
        
		private string programField;
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("annotate")]
		public fx_annotate_common[] annotate {
			get {
				return this.annotateField;
			}
			set {
				this.annotateField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("array", typeof(glsl_setarray_type))]
		[System.Xml.Serialization.XmlElementAttribute("bool", typeof(bool))]
		[System.Xml.Serialization.XmlElementAttribute("bool2", typeof(bool))]
		[System.Xml.Serialization.XmlElementAttribute("bool3", typeof(bool))]
		[System.Xml.Serialization.XmlElementAttribute("bool4", typeof(bool))]
		[System.Xml.Serialization.XmlElementAttribute("enum", typeof(string))]
		[System.Xml.Serialization.XmlElementAttribute("float", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float2", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float2x2", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float3", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float3x3", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float4", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("float4x4", typeof(float))]
		[System.Xml.Serialization.XmlElementAttribute("int", typeof(int))]
		[System.Xml.Serialization.XmlElementAttribute("int2", typeof(int))]
		[System.Xml.Serialization.XmlElementAttribute("int3", typeof(int))]
		[System.Xml.Serialization.XmlElementAttribute("int4", typeof(int))]
		[System.Xml.Serialization.XmlElementAttribute("sampler1D", typeof(gl_sampler1D))]
		[System.Xml.Serialization.XmlElementAttribute("sampler2D", typeof(gl_sampler2D))]
		[System.Xml.Serialization.XmlElementAttribute("sampler3D", typeof(gl_sampler3D))]
		[System.Xml.Serialization.XmlElementAttribute("samplerCUBE", typeof(gl_samplerCUBE))]
		[System.Xml.Serialization.XmlElementAttribute("samplerDEPTH", typeof(gl_samplerDEPTH))]
		[System.Xml.Serialization.XmlElementAttribute("samplerRECT", typeof(gl_samplerRECT))]
		[System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
		public object Item {
			get {
				return this.itemField;
			}
			set {
				this.itemField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlIgnoreAttribute()]
		public ItemChoiceType1 ItemElementName {
			get {
				return this.itemElementNameField;
			}
			set {
				this.itemElementNameField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="token")]
		public string @ref {
			get {
				return this.refField;
			}
			set {
				this.refField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")]
		public string program {
			get {
				return this.programField;
			}
			set {
				this.programField = value;
			}
		}
	}
}